package com.pattern.strategy;

import com.pattern.strategy.comparable.MySorter;

import java.util.Arrays;

/**
 * 此处是给int类型排序
 *
 * 如果给其他类型排序呢？ 给double long类型数组排序？
 *          或者是给其它自定义类型排序呢？ 如cat
 *
 * 初步思路 如果需要实现给所有的类型排序
 *          1. Sorter中需要根据类写排序的方法 int类型就需要 sort(int[] a) ; long类型 sort(Long[] l) ; Cat类型 sort(Cat[] c) ; 等等
 *          2. 自定义对象中需要写ComparetTo方法
 *
 * comparable comparable2中并不是策略模式
 * 在comparable2中使用泛型了 但是还有不够灵活的问题  如：比较方法 如果需要比较heights属性呢 ？？？？
 *
 *          1. 自定义比较接口
 *          2. 比较方法中传入比较的数组以及比较器（实现了自定义的比较器）
 *
 *  comparator中使用策略模式
 *
 */
public class Main {
    public static void main(String[] args) {
//        int[] a = {9, 2, 3, 5, 7, 1, 4};
//        Sorter sorter = new Sorter();
//        sorter.sort(a);
//        System.out.println(Arrays.toString(a));

        Cat[] a = {new Cat(3,3), new Cat(5,5), new Cat(1,1)};
        Sorter sorter = new Sorter();
//        sorter.sort(a);
//        System.out.println(Arrays.toString(a));
    }
}
